package com.southwind.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.ResponseBody;
/**
 * <p>
 * RedirectController 类用于处理网站的重定向请求和防止 favicon 请求导致不必要的资源加载。
 * </p>
 *
 * @author [Your Name]
 * @since [Date]
 */

@Controller
public class RedirectController {

    /**
     * 根据路径变量中的 URL 字符串，将请求重定向到指定的地址。
     * <p>
     * 这个方法通常用于实现动态路由或者将旧URL重定向到新URL。
     * </p>
     *
     * @param url 用户请求的重定向URL，由路径变量提供
     * @return 返回URL字符串，使得Spring MVC框架能够执行重定向操作
     */

    @GetMapping("/{url}")
    public String redirect(@PathVariable("url") String url){
        return url;
    }

    /**
     * 处理 favicon.ico 请求，返回空响应体以避免浏览器尝试加载 favicon 图标。
     * <p>
     * 在某些情况下，浏览器会自动寻找 favicon.ico 文件，这可能导致额外的请求和性能影响。
     * 这个方法通过返回一个空的响应体来告诉浏览器无需加载 favicon。
     * </p>
     *
     * @return 无响应内容，仅返回一个空的HTTP响应体
     */

    @GetMapping("favicon.ico")
    @ResponseBody
    void returnNoFavicon() {
    }

}
